﻿using System;

namespace Teigha.Core
{
	public class OdFont_Internal : OdFont
	{
		public OdFont_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override OdResult initialize(OdStreamBuf pStreamBuf)
		{
			return (OdResult)GlobalsPINVOKE.OdFont_initialize(OdFont.getCPtr(this), OdStreamBuf.getCPtr(pStreamBuf));
		}

		public override OdResult drawCharacter(char character, OdGePoint2d advance, OdGiCommonDraw pWd, OdTextProperties textProperties)
		{
			return (OdResult)GlobalsPINVOKE.OdFont_drawCharacter__SWIG_0(OdFont.getCPtr(this), character, OdGePoint2d.getCPtr(advance), OdGiCommonDraw.getCPtr(pWd), OdTextProperties.getCPtr(textProperties));
		}

		public override OdResult drawCharacter(char character, OdGePoint2d advance, OdGiConveyorGeometry pGeometry, OdTextProperties textProperties)
		{
			return (OdResult)GlobalsPINVOKE.OdFont_drawCharacter__SWIG_1(OdFont.getCPtr(this), character, OdGePoint2d.getCPtr(advance), pGeometry.GetCPtr(), OdTextProperties.getCPtr(textProperties));
		}

		public override double getAbove()
		{
			return GlobalsPINVOKE.OdFont_getAbove(OdFont.getCPtr(this));
		}

		public override double getBelow()
		{
			return GlobalsPINVOKE.OdFont_getBelow(OdFont.getCPtr(this));
		}

		public override uint getAvailableChars(OdCharArray characters)
		{
			return GlobalsPINVOKE.OdFont_getAvailableChars(OdFont.getCPtr(this), OdCharArray.getCPtr(characters));
		}

		public override bool hasCharacter(char character)
		{
			return GlobalsPINVOKE.OdFont_hasCharacter(OdFont.getCPtr(this), character);
		}
	}
}
